Virtualization allows multiplexing of an underlying host machine between different virtual machines. The host computer allocates a certain amount of its resources to each of the virtual machines. Each virtual machine is then able to use the allocated resources to execute applications, including operating systems (referred to as guest operating systems). The software layer providing the virtualization is commonly referred to as a hypervisor and is also known as a virtual machine monitor (VMM), a kernel-based hypervisor, or a host operating system. The hypervisor emulates the underlying hardware of the host computer, making the use of the virtual machine transparent to the guest operating system and the user of the computer.
Virtual machines can be provided by a centralized host that is coupled to multiple clients over a network. Each virtual machine provides a virtual desktop for the client and executes the graphics operations relating to the virtual desktop. The guest operating system of a virtual machine manages the files used by the virtual machine. In a conventional virtual machine system, each virtual machine periodically runs an anti-virus program to ensure that the files are not corrupted by a virus. However, the anti-virus programs typically incur a significant amount of random I/O, which slows down the entire system. Further, some of virtual machines may run the anti-virus programs at the same time and create a sudden increase in the system load. Therefore, running the anti-virus programs in a conventional virtual machine system can degrade system performance, increase disk I/O, and consume significant CPU cycles.